package model;

import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="suprimento")
@SequenceGenerator(name="suprimento_id_seq", sequenceName="suprimento_id_seq", allocationSize=1, initialValue=1 )
public class Suprimento  implements java.io.Serializable {

    @Id    
    @GeneratedValue(generator="suprimento_id_seq", strategy=GenerationType.SEQUENCE)
    @Column(name="id", unique=true, nullable=false)
    private Integer id;
    
    @OneToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_funcionario", nullable=false)
    private Funcionario funcionario;
    
    @OneToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_movimento_caixa")
    private MovimentoCaixa movimentoCaixa;
    
    @Column(name="descricao", nullable=false)
    private String descricao;
    
    @Column(name="valor", nullable=false, precision=15)
    private BigDecimal valor;
    
    @Temporal(TemporalType.DATE)
    @Column(name="data", nullable=false, length=13)
    private Date data;
    
    @Temporal(TemporalType.TIME)
    @Column(name="hora", nullable=false, length=15)
    private Date hora;

    public Suprimento() {
    }

	
    public Suprimento(Integer id, Funcionario funcionario, String descricao, BigDecimal valor, Date data, Date hora) {
        this.id = id;
        this.funcionario = funcionario;
        this.descricao = descricao;
        this.valor = valor;
        this.data = data;
        this.hora = hora;
    }
    public Suprimento(Integer id, Funcionario funcionario, MovimentoCaixa movimentoCaixa, String descricao, BigDecimal valor, Date data, Date hora) {
       this.id = id;
       this.funcionario = funcionario;
       this.movimentoCaixa = movimentoCaixa;
       this.descricao = descricao;
       this.valor = valor;
       this.data = data;
       this.hora = hora;
    }
   
    public Integer getId() {
        return this.id;
    }
    
    public void setId(int id) {
        this.id = id;
    }
    public Funcionario getFuncionario() {
        return this.funcionario;
    }
    
    public void setFuncionario(Funcionario funcionario) {
        this.funcionario = funcionario;
    }
    public MovimentoCaixa getMovimentoCaixa() {
        return this.movimentoCaixa;
    }
    
    public void setMovimentoCaixa(MovimentoCaixa movimentoCaixa) {
        this.movimentoCaixa = movimentoCaixa;
    }
    
        public String getDescricao() {
        return this.descricao;
    }
    
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }
    
        public BigDecimal getValor() {
        return this.valor;
    }
    
    public void setValor(BigDecimal valor) {
        this.valor = valor;
    }
        public Date getData() {
        return this.data;
    }
    
    public void setData(Date data) {
        this.data = data;
    }
        public Date getHora() {
        return this.hora;
    }
    
    public void setHora(Date hora) {
        this.hora = hora;
    }




}


